In many signal processing applications, it is desirable to have the ability to compute the signal-to-noise ratio (SNR), signal to noise and distortion ratio (SINAD), and total harmonic distortion (THD) of a discrete-time signal. In particular applications, it is desirable to compute these parameters for a signal having one dominant frequency component among possible DC, harmonic frequency components, and noise components.
An existing technique for computing the SNR of a discrete-time signal uses what is referred to as a “4-parameter sine-wave curve-fitting” application to analyze a discrete-time signal. Using the 4-parameter sine-wave curve-fitting application, the four unknowns are the (1) DC component, (2) fundamental frequency, (3) amplitude, and (4) phase of the dominant sinusoidal component. If the frequency of the dominant sinusoidal component is known, as it often is in practice, then the technique is reduced to a “3-parameter sine-wave curve-fitting” application. Nevertheless, a sine-wave curve-fitting algorithm that does not consider possible harmonics in the data record treats such harmonics as noise, thus making an accurate SNR measurement difficult to achieve.
Another existing technique for computing SNR, SINAD, and THD transforms the time domain data record into the frequency domain via a Discrete Fourier Transform (DFT). However, transforming the time domain data record into the frequency domain via a DFT requires that the system meet new requirements introduced by the transformation. Associated with this transformation is the requirement that the signal be coherently sampled (i.e. synchronously sampled, bin-centered, periodic within the window) so as to reduce spectral leakage. That is, the DFT assumes a periodic discrete-time data record as input. Such a strict requirement is nearly impossible to implement in practice and is certainly not possible for all applications. Thus, a common work-around, known as “windowing,” is used to minimize the effects of spectral leakage. The errors due to spectral leakage are well-known to those skilled in the art, and include energy spreading across frequencies, leading to amplitude inaccuracies. These resulting errors are greatly minimized with the use of windowing. However, these errors are unavoidable, as windowing merely “patches” over the spectral leakage, and does not allow for accurate measurements to be obtained. Therefore, the result of any method that attempts to compute SNR, SINAD, and/or THD measurements of a discrete-time signal that uses a DFT to compute amplitudes of frequency components includes these inaccuracies.
Therefore, it is desirable to have a method for accurately computing the fundamental and harmonic components present in a data record that overcomes the above-mentioned drawbacks. The fundamental and harmonic components are then used for calculating SNR, SINAD, and THD.